//逻辑或   从左到右返回第一个真值
var p = null|| {};
console.log(p) //{}
var p1 = "aa"|| {};
console.log(p1) //aa
var p2 = false|| {};  //如果是true，则输出为true
console.log(p2) //{}
var p3 = !!p2|| {}; //逻辑非反指!
console.log(p3) // true

//逻辑与（&&）返回第一个假，如果都是假则返回第一个假，都是真返回最后一个真
var y = null && {};
console.log(y) //null
var y = true && false;
console.log(y) //false
var y = 10 && true;
console.log(y) //true
//从左到右，10 && true都是真返回最后1个真，然后true ||false返回第一个真
var y = 10 && true ||false ;
console.log(y) //true


a = {
    'name': 'chenziang',
    'items':
        [{'item1': 'food', 'item2': 'food1'}]
};
console.log(Object.keys(a['items']))//检查几个对象为['0']
console.log(a['items'][0]['item2'])//[0]脱掉1层[],然后指向'item2'

var data = [
    "test-001",
    "test-002",
    "test-003"
]
var all =Object.keys(data)
var account ={};
for (var a in all) {
    var key =all[a];
    // console.log(key)
    // console.log(data[key]);
    console.log('key---',key,':',data[key])
}
var all =Object.keys(data)
console.log(all.length)
for(var a in all){
    //a =a+1
    console.log("a的长度",a.length) //如果没有a+=1，a长度为1，如果有则是2
    if(a.length== all.length){ //1+2！==3 判断为输入2
        //if(!!a.lenth ==all.length) 布尔不等于长度
        //(!!a.length== !!all.length) 布尔True等于布尔True
        console.log("输入1")
    }else{
        console.log("输入2")
    }
    console.log(typeof(a));//这样是string类型的
}

var s ="hello";
var s1 =new String(s);
var s2 =String(s)
console.log(typeof(s1));//object
console.log(typeof(s2));//string
console.log(s===s2) //true
console.log(s2===s1) //false
s1.foo ='bar'
console.log(s1.foo); //bar
s2.foo ='bar'
console.log(s2.foo);//undefined string.对象是不行的。下面做下验证
var j ={"hello":"haha","node":"kuku"}
console.log(j['hello']&& j['node']) //kuku
var hello =new String(j['hello'])
console.log(typeof(hello)) //object
console.log(hello[4]);//undefined
console.log(hello[4]===undefined)//true
//s=string转换成[]也是true
if(s=[]||!hello[4]){ //undefined默认条件是false
    console.log("条件1");
}else {
    console.log("条件2");
}

    //switch
var buf =new Buffer(1);
switch (buf.length){
    case 0:
        console.log(0);
        break;
    case 1:
        console.log(1);
        break;
    default:{
        console.log(undefined);
    }
    break;
}
//三元的还有一种用法 aobj.length < bobj.length ? aobj :bobj 条件表达式?然后:否则 为True则aobj
//(源码!=斑马)?!i?源码[i]:斑马:源码[0]